Composite network-accessible services, such as World-Wide Web (hereinafter, “web”) services, can be constructed using reusable software components. Such components can be discovered and invoked by distributed applications to delegate their sub-functionality. The specification of a web service is published to a directory, and is made available for online access by deploying the service on an application server. Applications search for web services of interested from the web services directory, and invoke appropriate candidates using the published access information.
One way to construct network-accessible services is described in the previously filed patent application entitled “Constructing Network-Accessible Services,” filed on Dec. 4, 2003, and assigned Ser. No. 10/727,672, which is hereby incorporated by reference. This patent application describes the construction of a composite service as a two-stage process. In the first stage, an abstract plan, or workflow, is generated by a plan selector for assembling the composite service definition. The web service instances can be grouped into web service types by common capabilities, and described formally. The plan selector implements an artificial intelligence (AI) planning algorithm, and constructs a plan by intelligently searching the possible combinations of web service capabilities. The output of the first stage is an abstract workflow plan, which is structurally complete and identifies the web service types to be invoked, but does not specify component instances. In the second stage of this process, the plan is instantiated into an executable physical plan, a runtime configuration of which is then evaluated.
A shortcoming of this two-stage process to network-accessible service construction is that any failure of the process causes the network-accessible service to not be constructed, without any feedback as to why the process has failed. That is, the person desiring to create a given network-accessible service is not provided with any information as to how to remedy the failure, and at best can only conjecture as to why the process has failed. For this and other reasons, therefore, there is a need for the present invention.